package com.piggy.logi.sys.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.piggy.common.core.annotation.Excel;
import com.piggy.common.core.web.domain.BaseTenantEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 承运商司机信息编辑对象 logi_carrier_driver
 *
 * @author zito
 * @date 2023-08-12
 */
@Data
@Accessors(chain = true)
@ApiModel("承运商司机信息编辑对象")
public class LogiCarrierDriverEditBo extends BaseTenantEntity {

    /** userId */
    @ApiModelProperty("userId")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long userId;

    /** id */
    @ApiModelProperty("承运商司机id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long driverId;

    /** 司机姓名 */
    @ApiModelProperty("司机姓名")
    private String driverName;

    /** 性别 */
    @ApiModelProperty("性别")
    private String sex;

    /** 身份证号 */
    @ApiModelProperty("身份证号")
    private String idCardNo;

    /** 司机类型 */
    @ApiModelProperty("司机类型")
    private String driverType;

    /** 地址区县Id */
    @Excel(name = "地址区县Id")
    @ApiModelProperty("地址区县Id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Integer addressDistrictId;

    /** 地址详细 */
    @Excel(name = "地址详细")
    @ApiModelProperty("地址详细")
    private String address;

    /** 地址经度 */
    @Excel(name = "地址经度")
    @ApiModelProperty("地址经度")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Float addressLng;

    /** 地址纬度 */
    @Excel(name = "地址纬度")
    @ApiModelProperty("地址纬度")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Float addressLat;

    /** 手机号码 */
    @ApiModelProperty("手机号码")
    @NotBlank(message = "手机号码不能为空")
    private String phoneNumber;

    /** 驾照类型 */
    @ApiModelProperty("驾照类型")
    private String licenseType;

    /** 驾驶证号 */
    @ApiModelProperty("驾驶证号")
    private String driverLicenseNo;

    /** 驾龄 */
    @ApiModelProperty("驾龄")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Integer drivingYears;

    /** 驾驶证起始日期 */
    @ApiModelProperty("驾驶证起始日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date driverLicenseStartDate;

    /** 驾驶证到期日期 */
    @ApiModelProperty("驾驶证到期日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date driverLicenseExpireDate;

    /** 车牌号 */
    @ApiModelProperty("车牌号")
    private String plateNumber;

    /** 车辆类型 */
    @ApiModelProperty("车辆类型")
    private String carType;

    @ApiModelProperty("车长")
    private String carLength;

    /** 行驶证号 */
    @ApiModelProperty("行驶证号")
    private String drivingLicenseNo;

    /** 是否为自有车辆(0否1是) */
    @ApiModelProperty("是否为自有车辆(0否1是)")
    private String ownVehicle;

    /** 头像附件 */
    @ApiModelProperty("头像附件")
    private String avatarAttachment;

    /** 身份证附件 */
    @ApiModelProperty("身份证附件")
    private String idCardAttachment;

    @ApiModelProperty("身份证附件")
    private String idCardReverseAttachment;

    /** 驾驶证附件 */
    @ApiModelProperty("驾驶证附件")
    private String driverLicenseAttachment;

    /** 人照合一附件 */
    @ApiModelProperty("人照合一附件")
    private String personWithCarAttachment;

    /** 其他附件 */
    @ApiModelProperty("其他附件")
    private String otherAttachment;

    /** 开通账号 */
    @ApiModelProperty("开通账号")
    private String openAccount;

    /** 启动状态 */
    @ApiModelProperty("启动状态")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Integer enableStatus = 0;

    /** 备注字段 */
    @ApiModelProperty("备注字段")
    private String remark;
}
